package String;

/**
 * @author 孤雪唯方
 * @date 2025/05/16
 * @description 测试字符串类型
 */
public class TestString {
    /**
     * 测试字符串,使用“ == ”方式进行字符串比较
     */
    public static void testString() {
        //使用常量串进行构造字符串
        String str1 = "hello world";
        String str2 = "hello world";

        //使用newSting()方法构造字符串
        String str3 = new String("hello world");
        String str4 = new String("hello world");

        String str5 = str4;

        //通过“ == ”方式比较字符串是否相等
        System.out.println(str1 == str2);//ava会将所有字符串字面量（如"hello world"）存储在字符串常量池中。当创建一个新字符串字面量时，JVM会先在常量池中查找是否已存在相同内容的字符串：1.如果存在，直接复用该对象的引用（地址相同）。2.如果不存在，在常量池中新建一个字符串对象。
        System.out.println(str1 == str3);
        System.out.println(str3 == str4);
        System.out.println(str4 == str5);
        //通过equals()方法比较字符串是否相等,此时会比较字符串内容是否相同，故结果都为true
        System.out.println(str1.equals(str2));
        System.out.println(str1.equals(str3));
        System.out.println(str3.equals(str4));
        System.out.println(str4.equals(str5));
    }


    public static void main(String[] args) {
        testString();
    }
}
